package com.skiving.cloud.auth.entity;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AuthUser implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;

    private String id;

    /**
     * 用户名
     */
    private String username;

    /**
     * 密码
     */
//    private String password;

    /**
     * 盐
     */
//    private String salt;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 手机号
     */
    private String mobile;

    /**
     * 用户状态：100201-正常、100202-锁定、100203-停用、100204-删除
     */
    private String status;

    /**
     * 创建者
     */
    private String createUserId;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 员工编号
     */
    private String staffId;

    /**
     * ERP企业编号
     */
    private String enterpriseId;

    /**
     * ERP企业名称
     */
    private String enterpriseName;

    /**
     * 姓名
     */
    private String staffName;

    /**
     * 证件类型 01-居民身份证、02-居民户口薄、03-驾驶证、04-军官证、05-士兵证、06-军官离退休证、07-中国护照、08-异常身份证、09-港澳台通行证、10-台湾通行证、11-回乡证、51-外国护照、52-旅行证、53-居留证件、71-组织机构代码证、72-税务登记证、73-营业执照、99-其他证件
     */
    private String idType;

    /**
     * 证件号码
     */
    private String idNo;

    /**
     * 最后修改人
     */
    private String lastChangeder;

    /**
     * 最后修改时间
     */
    private LocalDateTime lastChangedTime;

    /**
     * 最后修改密码时间
     */
    private LocalDateTime lastChangedPwdTime;

    /**
     * 登录错误次数
     */
    private Integer errorTime;

    /**
     * 登录状态(0-未登录 1-已登录)
     */
    private String loginStatus;

    /**
     * 提醒修改密码周期(单位：天)
     */
    private Integer alterTime;

    /**
     * 最后登录时间
     */
    private LocalDateTime loginTime;

    /**
     * 排序
     */
    private Long orderNum;

    /**
     * 审核状态
     */
    private String chkStatus;

    /**
     * 组织机构
     */
    private String orgId;

    /**
     * 当前皮肤
     */
    private String skin;

    /**
     * 对接外部系统识别账号
     */
    private String accountName;

    /**
     * 上次登录终端：1-PC、2-APP
     */
    private String loginTerminal;

    /**
     * 租户
     */
    private String tenantId;
}
